
public class Test {
    public static void main(String[] args) {
        Point p = new Point(3, 4);
        System.out.println("Point coordinates: (" + p.x() + ", " + p.y() + ")");

    }
}

// Record类
// 不能直接从Record派生
record Point(int x, int y) {
    // 自定义构造函数
    public static Point of() {
        return new Point(0, 0);
    }
}
// 相当于下面这段
// final class Point extends Record {
// private final int x;
// private final int y;

// public Point(int x, int y) {
// this.x = x;
// this.y = y;
// }

// public int x() {
// return this.x;
// }

// public int y() {
// return this.y;
// }

// public String toString() {
// return String.format("Point[x=%s, y=%s]", x, y);
// }

// public boolean equals(Object o) {
// ...
// }
// public int hashCode() {
// ...
// }
// }
